// async/await 如果右边方法执行出错该怎么办？（百度一面 2020）

// 返回的都是Promise对象，可以用.then .catch来捕捉异常进行处理
const fetchData = () => {
  return new Promise((resolve, reject) => {
    setTimeout(() => {
      resolve('fetch data is me');
    }, 1000);
  });
};

// 抽离成公共方法
const awaitWrap = (promise) => {
  return promise
    .then(data => [null, data])
    .catch(err => [err, null]);
};

const [err, data] = await awaitWrap(fetchData());
console.log('err', err);
console.log('data', data);
